all:
	@echo "可执行:"
	@echo "    make package        构建所有支持构建 package 的项目"
	@echo "    make copy-to-out    将所构建的包复制到 out 目录"
	@echo "    make enter-<target> 将进入目标项目目录"

PATHS=$(shell repo forall -c pwd)
pwds:
	@echo $(PATHS)

# package 是在每个项目的目录下，如果存在 build 目录就进行构建 make -C <项目目录> package ，当然如果构建失败则打印该路径构建失败。
# 不过在此前建议 repo forall -c make 一次，以免构建时 build 目录不存在
package:
	@for i in $(PATHS); do\
		test -f $$i/Makefile && cat $$i/Makefile | grep 'package:' > /dev/null && echo "build: $$i" \
		&& make -C $$i package > /dev/null 2>&1; \
		if $[[ -f $$i $]]; then \
			cat $$i/Makefile | grep 'package:' > /dev/null || echo "没有 package 目标"; \
		else \
			test -f $$i/Makefile || echo "$$i: 没有 Makefile 文件"; \
		fi \
	done

# copy-to-out 是创建一个 out 目录，并在子目录中，从包含 _CPack 的目录中取 deb 结尾的路径，即可将每个 deb 文件拷贝到 out 中 
DEBS=$(shell find . | grep _CPack | grep 'deb$$')
copy-to-out:
	@mkdir -p out
	cp $(DEBS) out

not-support-package:
	@for i in  $(PATHS); do\
		test -f $$i/Makefile || echo $$i;\
	done


# 引入默认的 repo.mk 进行扩展 repo 的相关操作
include build-scripts/repo.mk

# 引入默认的 macro.mk 进行扩展 macro 的相关操作
include build-scripts/macro.mk

# ------------- LOCAL_REPO_PATHS ------------- #
ifneq ($(LOCAL_REPO_PATHS),)
$(foreach n,$(LOCAL_REPO_PATHS),$(eval $(call macro-target-path,$(n),qt\.)))
else
LOCAL_REPO_PATHS=$(shell repo forall -c pwd)
$(foreach n,$(LOCAL_REPO_PATHS),$(eval $(call macro-target-path,$(n),qt\.)))
endif

# for i in `make not-support-package`; do FOUND=0; for j in `make pwds`; do if [[ $i == $j ]]; then FOUND=1; fi; done; if [[ $FOUND == 1 ]]; then echo $i; fi; done;

push-manifest:
	cd .repo/manifests && git push origin default:master